package rpcx_label_center

import (
	"time"

	"github.com/qida/gohp/timex"
)

const (
	IdScheme抽图 int64 = 1000
)

// 人工智能
const (
	IdScheme安全帽检测 int64 = 1001 + iota
	IdScheme孔洞覆盖不规范
	IdScheme配电箱门未关闭
	IdScheme乙快瓶未垂直放置
	IdScheme吊钩保险缺失
	IdScheme手板葫芦板手未固定
	IdScheme氧气瓶与乙快瓶紧邻放置
	IdScheme需防雨设施无防雨保护
	IdScheme作业现场有易燃易爆物
)

// 设备报警
const (
	IdScheme移动侦测报警 int64 = 2001 + iota
	IdScheme视频遮挡报警
	IdScheme进入区域侦测报警
	IdScheme离开区域侦测报警
)

// 前端标注
const (
	IdScheme前端标注 int64 = 3001 + iota
)

// 人工智能平台 人脸识别
const (
	IdScheme人脸检测 int64 = 4001 + iota
	IdScheme活体检测
	IdScheme人脸对比
	IdScheme人脸搜索
	IdScheme多人脸搜索 // 4005
)

// 人工智能平台 OCR
const (
	IdSchemeOCR表格识别 int64 = 4101 + iota
	IdSchemeOCR营业执照识别
	IdSchemeOCR手写体识别
	IdSchemeOCR印章识别
	IdSchemeOCR增值税文字识别
	IdSchemeOCR高精度文字识别
	IdSchemeOCR增值税卷票识别
	IdSchemeOCR完税证明识别
	IdSchemeOCR增通用机打发票识别
	IdSchemeOCR汽车票识别
	IdSchemeOCR轮船票识别
	IdSchemeOCR机票识别
	IdSchemeOCR火车票识别
	IdSchemeOCR过路费发票识别
	IdSchemeOCR购车发票识别
	IdSchemeOCR二手车发票识别
	IdSchemeOCR定额发票识别
	IdSchemeOCR出租车票识别
	IdSchemeOCR车牌识别
	IdSchemeOCR身份证识别
	IdSchemeOCR银行卡识别
	IdSchemeOCR名片识别
	IdSchemeOCR企业执照识别
)

// 人工智能平台 冀北
const (

	// 冀北作业现场典型违章智能识别对应类别编码：
	IdScheme高处作业未佩戴安全带      int64 = 4201 + iota //00001002
	IdScheme高处作业未正确使用安全带                        //01010102
	IdScheme梯上作业无人扶梯                            //06001006
	IdScheme作业现场孔洞未遮盖或无防护措施                     //06001008
	IdScheme作业现场未设安全围栏                          //00002001
	IdScheme作业现场未设标识牌                           //00002002
	IdScheme跨越安全围栏                              //91001001
	IdScheme未戴安全帽                               //00001001    4208
	IdScheme未佩戴绝缘手套                             //00001005
	IdScheme未规范着装                               //00001011
	// IdScheme宁夏特殊作业现场智能筛选
	IdScheme大型机械作业识别 //91003003
)

// 充电卫士
const (
	IdScheme充电卫士行为上报数据 int64 = 5001 + iota
	IdScheme充电卫士车辆出入数据
)

// 方案表，状态
const (
	StatusBaseScheme删除 = -10
	StatusBaseScheme停用 = -1
	StatusBaseScheme正常 = 10
	// StatusBaseScheme已发送未完成 = 20
	// StatusBaseScheme已完成    = 30

	TypeScheme历史方案 = 1
	TypeScheme实时方案 = 2
)

// 方案任务记录

// 方案 创建 请求
type ReqBaseSchemeCreate struct {
	IdScheme   int64  `json:"IdScheme"`   //方案ID"
	SchemeName string `json:"SchemeName"` //方案名称"

	Log Log `json:"Log,omitempty"` //追踪日志
}

// 方案 删除 请求
type ReqBaseSchemeDelete struct {
	IdScheme int64 `json:"IdScheme"`      //方案Id
	Log      Log   `json:"Log,omitempty"` //追踪日志
}

// 方案 修改 请求
type ReqBaseSchemeUpdate struct {
	IdScheme   int64  `json:"IdScheme"`   //方案Id
	SchemeName string `json:"SchemeName"` //方案名称
	Status     int8   `json:"Status"`     //状态

	Log Log `json:"Log,omitempty"` //追踪日志
}

// 方案 查询 请求
type ReqBaseSchemeSearch struct {
	KeyWord     string    `json:"KeyWord,omitempty"`     //全局关键词
	IdScheme    int64     `json:"IdScheme"`              //方案Id
	IdSchemes   []int64   `json:"IdSchemes"`             //方案Id集
	SchemeName  string    `json:"SchemeName"`            //方案名称
	Status      int8      `json:"Status"`                //状态
	TimeCreate  time.Time `json:"TimeCreate"`            //记录创建时间
	TimeUpdate  time.Time `json:"TimeUpdate"`            //最后修改时间
	TimeDelete  time.Time `json:"TimeDelete"`            //删除时间
	Page        int64     `json:"Page"`                  //必填 指定返回页码号
	Limit       int64     `json:"Limit"`                 //必填 指定返回每页条数
	FieldOrders []string  `json:"FieldOrders,omitempty"` //指定要排序的字段数组，默认升序，降序加前缀-，如 ["-Id", "Name"] 按Id降序Name升序排列

	Log Log `json:"Log,omitempty"` //追踪日志
}
type ReqBaseIdScheme struct {
	IdScheme int64 `json:"IdScheme"` //方案Id

	Log Log `json:"Log,omitempty"` //追踪日志
}

type RespBaseScheme struct {
	IdScheme   int64  `json:"IdScheme"`   //方案Id
	SchemeName string `json:"SchemeName"` //方案名称
	Status     int8   `json:"Status"`     //状态
	StatusText string `json:"StatusText"` //方案名称

	TimeCreate time.Time      `json:"TimeCreate"` //记录创建时间
	TimeUpdate timex.TimeNull `json:"TimeUpdate"` //最后修改时间
}

// 响应 查询列表
type RespBaseSchemes struct {
	Total       int64            `json:"Total"`       //返回列表的总条数
	BaseSchemes []RespBaseScheme `json:"BaseSchemes"` //返回列表对象
}
